INS_DIR	:= ../../../bin/

common_src_files := \
	src/assertion.c \
	src/avrule_block.c \
	src/avtab.c \
	src/boolean_record.c \
	src/booleans.c \
	src/conditional.c \
	src/constraint.c \
	src/context.c \
	src/context_record.c \
	src/debug.c \
	src/ebitmap.c \
	src/expand.c \
	src/genbools.c \
	src/genusers.c \
	src/handle.c \
	src/hashtab.c \
	src/hierarchy.c \
	src/iface_record.c \
	src/interfaces.c \
	src/link.c \
	src/mls.c \
	src/module.c \
	src/module_to_cil.c \
	src/node_record.c \
	src/nodes.c \
	src/polcaps.c \
	src/policydb.c \
	src/policydb_convert.c \
	src/policydb_public.c \
	src/port_record.c \
	src/ports.c \
	src/roles.c \
	src/services.c \
	src/sidtab.c \
	src/symtab.c \
	src/user_record.c \
	src/users.c \
	src/util.c \
	src/write.c

cil_src_files := \
	cil/src/cil_binary.c \
	cil/src/cil_build_ast.c \
	cil/src/cil.c \
	cil/src/cil_copy_ast.c \
	cil/src/cil_fqn.c \
	cil/src/cil_list.c \
	cil/src/cil_log.c \
	cil/src/cil_mem.c \
	cil/src/cil_parser.c \
	cil/src/cil_policy.c \
	cil/src/cil_post.c \
	cil/src/cil_reset_ast.c \
	cil/src/cil_resolve_ast.c \
	cil/src/cil_stack.c \
	cil/src/cil_strpool.c \
	cil/src/cil_symtab.c \
	cil/src/cil_tree.c \
	cil/src/cil_verify.c

CFLAGS := \
	-fmessage-length=0 -O2 \
	-Wall -W -Wundef \
	-Wshadow -Wmissing-noreturn \
	-Wmissing-format-attribute

CFLAGS += -Iinclude
CFLAGS += -Isrc
CFLAGS += -Icil/include
CFLAGS += -Icil/src

LIB_SRCS := $(common_src_files) $(cil_src_files)
LIB_OBJS := $(patsubst %.c,%.o,$(LIB_SRCS))


LIB	:= libsepol.a


all : $(LIB)

$(LIB) : $(LIB_OBJS)
	$(AR) rc $@ $^

%.o:%.c
	$(CC) $(CFLAGS) -c -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -o $@ $<

install:
	install -m 755 $(LIB) $(INS_DIR)

clean:
	-rm -rf $(LIB_OBJS) *.d $(LIB)

.PHONY: all clean install

